package com.cskaoyan.javase.method._2exercise;

/**
 * 定义一个计算器（Calculator）它的功能有
 * 加，减，乘，除
 * 求平方
 * 求a的n次方
 *
 * @since 15:48
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Calculator {
    public static void main(String[] args) {
        int a = 10;
        int b = 10;
        System.out.println(add(a, b));
        System.out.println(divide(a, b));
        System.out.println(power(10, 10));
    }

    // 加
    public static int add(int num1, int num2) {
        return num1 + num2;
    }

    // 减
    public static int subtract(int num1, int num2) {
        return num1 - num2;
    }

    // 乘
    public static int multiply(int num1, int num2) {
        return num1 * num2;
    }

    // 除
    public static double divide(double num1, double num2) {
        return num1 / num2;
    }

    // 求平方
    public static int square(int num) {
        return num * num;
    }

    // 求a的n次方,幂运算
    public static long power(int a, int n) {
        /*
            Java中已经存在的幂运算的实现:
            Math.pow(double,double)
            返回值也是double
         */
        // return (int) Math.pow(a,n);

        /*
            也可以手动写实现
            用循环求解
         */
        // 定义一个累乘的结果,初始值为1
        long result = 1;
        for (int i = 1; i <= n; i++) {
            result *= a;
        }
        return result;
    }
}
